package com.bfly.mall.order.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bfly.mall.order.entity.Order;
import com.bfly.mall.order.dto.OrderStatusDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * @author 长沙商脉科技有限公司
 * @date 2020/10/4 16:08
 */
@Mapper
public interface OrderMapper extends BaseMapper<Order> {

    /**
     * 根据订单号查询订单
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/19 9:53
     */
    Order getOrder(@Param("orderNo") String orderNo);

    /**
     * 修改订单支付状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/25 13:21
     */
    int editPayStatus(@Param("orderNo") String orderNo, @Param("payStatus") int payStatus);

    /**
     * 修改订单状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/25 13:22
     */
    int editOrderStatus(@Param("orderNo") String orderNo, @Param("orderStatus") int orderStatus);

    /**
     * 修改订单物流状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/25 13:22
     */
    int editExpressStatus(@Param("orderNo") String orderNo, @Param("expressStatus") int expressStatus);

    /**
     * 更新订单的预支付会话标识列
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/5/11 14:49
     */
    void editOrderPrepayId(@Param("orderNo") String orderNo, @Param("prepayId") String prepayId);

    /**
     * 更新订单的交易号
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/5/11 20:30
     */
    void editOrderTransactionId(@Param("orderNo") String orderNo, @Param("transactionId") String transactionId);

    /**
     * 查询订单状态相关信息
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/8 20:16
     */
    OrderStatusDTO getStatuses(@Param("orderNo") String orderNo);
}
